@@ -5,4 +5,10 @@ |
||
5 | 5 |
jQuery -> $('form').on 'click', '.remove_fields', (event) -> |
6 | 6 |
$(this).prev('input[type=hidden]').val('1') |
7 | 7 |
$(this).closest('fieldset').hide() |
8 |
+ event.preventDefault() |
|
9 |
+ |
|
10 |
+jQuery -> $('form').on 'click', '.add_fields', (event) -> |
|
11 |
+ time = new Date().getTime() |
|
12 |
+ regexp = new RegExp($(this).data('id'), 'g') |
|
13 |
+ $(this).before($(this).data('fields').replace(regexp, time)) |
|
8 | 14 |
event.preventDefault() |
@@ -12,10 +12,10 @@ class AgentController < ApplicationController |
||
12 | 12 |
@mission_invite.status = 'accepted' |
13 | 13 |
respond_to do |format| |
14 | 14 |
if @mission_invite.save |
15 |
- format.html { redirect_to mission_choose_path, notice: 'Mission was accepted.' } |
|
15 |
+ format.html { redirect_to missions_path, notice: 'Mission was accepted.' } |
|
16 | 16 |
format.json { head :no_content } |
17 | 17 |
else |
18 |
- format.html { redirect_to mission_choose_path, notice: 'Mission was not accepted. Please try again later.' } |
|
18 |
+ format.html { redirect_to missions_path, notice: 'Mission was not accepted. Please try again later.' } |
|
19 | 19 |
format.json { render json: @mission.errors, status: :unprocessable_entity } |
20 | 20 |
end |
21 | 21 |
end |
@@ -27,10 +27,10 @@ class AgentController < ApplicationController |
||
27 | 27 |
@mission_invite.status = 'denied' |
28 | 28 |
respond_to do |format| |
29 | 29 |
if @mission_invite.save |
30 |
- format.html { redirect_to mission_choose_path, notice: 'Mission was denied.' } |
|
30 |
+ format.html { redirect_to missions_path, notice: 'Mission was denied.' } |
|
31 | 31 |
format.json { head :no_content } |
32 | 32 |
else |
33 |
- format.html { redirect_to mission_choose_path, notice: 'Mission was not denied. Please try again later.' } |
|
33 |
+ format.html { redirect_to missions_path, notice: 'Mission was not denied. Please try again later.' } |
|
34 | 34 |
format.json { render json: @mission.errors, status: :unprocessable_entity } |
35 | 35 |
end |
36 | 36 |
end |
@@ -67,10 +67,11 @@ class MissionsController < ApplicationController |
||
67 | 67 |
params[:mission][:mission_agents_attributes].values.each do |a| |
68 | 68 |
if a[:mission_agent_steps_attributes] != nil |
69 | 69 |
a[:mission_agent_steps_attributes].values.each do |s| |
70 |
- @step = MissionAgentStep.find(s[:id]) |
|
70 |
+ @step = MissionAgentStep.where(:id => s[:id]).first_or_create |
|
71 | 71 |
if s[:_destroy] == 1.to_s |
72 | 72 |
@step.destroy |
73 | 73 |
else |
74 |
+ @step.mission_agent_id = a[:id] |
|
74 | 75 |
@step.description = s[:description] |
75 | 76 |
@step.save |
76 | 77 |
end |
@@ -1,2 +1,10 @@ |
||
1 | 1 |
module ApplicationHelper |
2 |
+ def link_to_add_fields(name, f, association) |
|
3 |
+ new_object = f.object.send(association).klass.new |
|
4 |
+ id = new_object.object_id |
|
5 |
+ fields = f.fields_for(association, new_object, index: id) do |builder| |
|
6 |
+ render(association.to_s.singularize + "_form", f: builder) |
|
7 |
+ end |
|
8 |
+ link_to(name, '#', class: "add_fields", data: {id: id, fields: fields.gsub("\n", "")}) |
|
9 |
+ end |
|
2 | 10 |
end |
@@ -12,6 +12,7 @@ |
||
12 | 12 |
<%= f.fields_for :mission_agents, MissionAgent.order('created_at ASC').find_all_by_mission_id(@mission) do |agent_builder| %> |
13 | 13 |
<%= render 'mission_agent_form', f: agent_builder %> |
14 | 14 |
<%end%> |
15 |
+ <%= link_to_add_fields "Add Agent", f, :mission_agents %> |
|
15 | 16 |
|
16 | 17 |
</div> |
17 | 18 |
|
@@ -8,5 +8,6 @@ |
||
8 | 8 |
<%= f.fields_for :mission_agent_steps, MissionAgentStep.where(:mission_agent_id => f.object.id).order(:step => :asc) do |step_builder| %> |
9 | 9 |
<%= render 'mission_agent_step_form', f: step_builder %> |
10 | 10 |
<%end%> |
11 |
+ <%= link_to_add_fields "Add Step", f, :mission_agent_steps %> |
|
11 | 12 |
<% @agent = @agent + 1 %> |
12 | 13 |
</fieldset> |